import json

data = {
    'name': 'ACME',
    'shares': 100,
    'price': 542.23,
    'bool': True
}

json_str = json.dumps(data)  # 序列化json
print(json_str)
data = json.loads(json_str)  # 逆序列化json成python的数据结构
print(data)

# 保留json的顺序
s = '{"name": "ACME", "shares": 50, "price": 490.1}'
from collections import OrderedDict

data = json.loads(s, object_pairs_hook=OrderedDict)


class JSONObject(object):
    def __init__(self, d):
        self.__dict__ = d  #__dict__是用来存储对象属性的一个字典，其键为属性名，值为属性的值。

data1 = json.loads(s,object_hook=JSONObject)
print(data1.name)